 ------------------
 iNES header format
 ------------------
 last update: 03/11/2021

 - This document covers how RockNES parses an iNES header file.
 - The iNES header appears as the first 16 bytes of a .NES file.
 Here's an easy description.

    +--------+------+------------------------------------------+
    | Offset | Size | Contents                                 |
    +--------+------+------------------------------------------+
    |   0    |  4   | NES + $1A char.                          |
    +--------+------+------------------------------------------+
    |   4    |  1   | Number of 16kib PRG ROM banks.           |
    +--------+------+------------------------------------------+
    |   5    |  1   | Number of 8kib CHR ROM banks.            |
    +--------+------+------------------------------------------+
    |   6    |  1   | Control [lower byte]                     |
    |        |      |   %mmmmVTSM                              |
    |        |      |    |  ||||+- 0=Horizontal mirroring      |
    |        |      |    |  ||||   1=Vertical mirroring        |
    |        |      |    |  |||+-- 1=Backed battery            |
    |        |      |    |  ||+--- 1=Trainer data (512 bytes)  |
    |        |      |    |  |+---- 1=Four screen mirroring     |
    |        |      |    |  |   (overrides H/V mirroring flag) |
    |        |      |    +--+----- Low 4 bits of mapper number |
    +--------+------+------------------------------------------+
    |   7    |  1   | Control [upper byte]                     |
    |        |      |   %MMMM--PU                              |
    |        |      |    |  |  |+- 1=VS System                 |
    |        |      |    |  |  +-- 1=Playchoice-10 system      |
    |        |      |    +--+----- High 4 bits of mapper number|
    +--------+------+------------------------------------------+
    |  8-15  |  8   | Reserved, must be zeroes. Dirty headers  |
    |        |      | bring garbage here, be warned!           |
    +--------+------+------------------------------------------+

 - RockNES has an option to ignore the reserved bytes 8-15 on ROM loading. It's NOT
recommended to disable it, unless you know what you're doing. ^_^;;

//EOF
